1780C - Bon appetit - CodeForces Solution


2-sat data structures greedy probabilities sortings two pointers

Please click on ads to support us..

C++ Code:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int t;cin>>t;
    while(t--){
 map<int,int>mp;
 vector<int>v;
 vector<int>p;

 int n,m;cin>>n>>m;
 int x[n],y[m];
 for(int i=0;i<n;i++){
    cin>>x[i];
    mp[x[i]]++;
    if(mp[x[i]]==1)p.push_back(x[i]);
 }
 for(int i=0;i<m;i++){cin>>y[i];}
 for(int i=0;i<p.size();i++){
    v.push_back(mp[p[i]]);
 }
 sort(v.begin(),v.end());sort(y,y+m);
 int u=m-1;
 while(u>=0){
    if(v[v.size()-1]==0)break;
    if(y[u]>v[v.size()-1])v[v.size()-1]=0;
    else v[v.size()-1]=v[v.size()-1]-y[u];
    u--;
    if(v[v.size()-1]==0)v.pop_back();
     if(v.size()==0)break;
    sort(v.begin(),v.end());
 }
 long long sum=0;
 for(int i=0;i<v.size();i++){
    sum+=v[i];
    if(v[i]==0)break;
 }
 //********
 cout<<n-sum<<"\n";}
}


Comments

Submit
0 Comments
More Questions

1422C - Bargain
1611F - ATM and Students
660A - Co-prime Array
1692F - 3SUM
1470A - Strange Birthday Party
190D - Non-Secret Cypher
1721B - Deadly Laser
1721C - Min-Max Array Transformation
1721A - Image
1180C - Valeriy and Deque
557A - Ilya and Diplomas
1037D - Valid BFS
1144F - Graph Without Long Directed Paths
1228A - Distinct Digits
355B - Vasya and Public Transport
1230A - Dawid and Bags of Candies
1530A - Binary Decimal
1472D - Even-Odd Game
441C - Valera and Tubes
1328E - Tree Queries
265A - Colorful Stones (Simplified Edition)
296A - Yaroslav and Permutations
967B - Watering System
152A - Marks
1398A - Bad Triangle
137A - Postcards and photos
1674D - A-B-C Sort
334A - Candy Bags
855A - Tom Riddle's Diary
1417A - Copy-paste